package com.ld.poetry.utils;

import cn.hutool.crypto.SecureUtil;
import com.ld.poetry.constants.CommonConst;
import java.nio.charset.StandardCharsets;

/**
 * 密码加密工具类
 * 使用 Hutool 的 SecureUtil 进行 AES 加密
 * 加密过程：
 * 1. 使用 CommonConst.CRYPOTJS_KEY 作为密钥
 * 2. 将密码进行 AES 加密
 * 3. 将加密后的字节数组转为 Base64 字符串
 */
public class PasswordEncryptor {
    
    /**
     * 加密密码
     * @param password 原始密码
     * @return 加密后的 Base64 字符串
     * @throws RuntimeException 加密失败时抛出异常
     */
    public static String encryptPassword(String password) {
        try {
            // 使用 UTF-8 编码获取密钥的字节数组
            // 使用 Hutool 的 SecureUtil.aes() 创建 AES 加密器
            // 直接返回 Base64 编码的加密结果
            return SecureUtil.aes(CommonConst.CRYPOTJS_KEY.getBytes(StandardCharsets.UTF_8)).encryptBase64(password);
        } catch (Exception e) {
            throw new RuntimeException("Failed to encrypt password", e);
        }
    }

    /**
     * 主方法用于测试密码加密
     * 示例：加密密码 "123456"
     */
    public static void main(String[] args) {
        String password = "123456";
        String encryptedPassword = encryptPassword(password);
        System.out.println("Original password: " + password);
        System.out.println("Encrypted password: " + encryptedPassword);
    }
} 